home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
pascal
/
turbcas.exe
/
TURBOCAS.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1991-07-10
|
23KB
|
781 lines
(***********************)
(* TURBO CAS *)
(* Version 1.0 *)
(* Turbo Pascal Unit *)
(* Supporting *)
(* the DCA/Intel *)
(* CAS *)
(***********************)
(* Public Domain *)
(* by Brian Corll *)
(***********************)
(* ALL RIGHTS RESERVED *)
(***********************)
(* Portions Copyright *)
(* 1988,1989 by *)
(* DCA/Intel *)
(***********************)
(* CAS stands for Communicating Application Specification *)
(* CAS is Copyright 1988,1989 DCA/Intel *)
{$F+,O+}
{ This unit provides Turbo Pascal access to FAX cards such as Intel's
Connection CoProcessor or similar cards which adhere to the DCA/Intel CAS }
UNIT TurboCAS;
INTERFACE
USES DOS;
TYPE
EventTypes = (Completed,Pending,Dialed,Sending,
Receiving,Aborted,NoStatus);
CFEventType = (CFSend,CFReceive,CFPolledSend,CFPolledReceive);
Directions = (Fore,Back);
QueueTypes = (Task,Receive,Log);
FileName = String[79];
FileNameArray = ARRAY[1..10] OF FileName;
Str32 = String[32];
Str80 = String[80];
Str47 = String[47];
CoverPageType = ARRAY[1..240] OF CHAR;
CFRPtr = ^ControlFileRecordType;
ControlFileRecordType = RECORD
EventType : BYTE;{User-defined}
TransType : BYTE;{User-defined}
Status : INTEGER;
SendTime : WORD;{User-defined}
SendDate : WORD;{User-defined}
NumberOfFiles : INTEGER;{User-defined}
FTROffset : WORD;{User-defined}
PhoneNo : ARRAY[1..47] OF CHAR;{User-defined}
TagField : ARRAY[1..64] OF CHAR;
Unused1 : BYTE;{User-defined}
CallSecs : BYTE;
CallMins : BYTE;
CallHrs : BYTE;
TotPages : LONGINT;
NumPagesSent : LONGINT;
NumFilesSent : WORD;
CoverFlag : BYTE;{User-defined}
NumErrors : WORD;
Unused2 : ARRAY[1..78] OF BYTE;{User-defined}
CSID : ARRAY[1..21] OF CHAR;
Dest : ARRAY[1..32] OF CHAR;{User-defined}
Sender : ARRAY[1..32] OF CHAR;{User-defined}
PCXFile : ARRAY[1..80] OF CHAR;{User-defined}
END;
FTRPtr = ^FileTransferRecordType;
FileTransferRecordType = RECORD
FAXType : BYTE;
TextSize : BYTE;
Status : BYTE;
BytesTrans : LONGINT;
SizeOfFile : LONGINT;
NumPagesTrans : INTEGER;
NumPagesTot : INTEGER;
FAXFileName : ARRAY[1..80] OF CHAR;
Increments : BYTE;
Inches : CHAR;
Reserved : ARRAY[1..31] OF CHAR;
END;
EDBPtr = ^ExternalDataBlock;
ExternalDataBlock = RECORD
CASMajor : BYTE;
CASMinor : BYTE;
ManagerPath : ARRAY[1..68] OF CHAR;
PBookName : ARRAY[1..13] OF CHAR;
LogoName : ARRAY[1..13] OF CHAR;
Sender : ARRAY[1..32] OF CHAR;
CSID : ARRAY[1..21] OF CHAR;
Reserved : ARRAY[1..107] OF BYTE;
END;
SARPtr = ^StatusAreaRecord;
StatusAreaRecord = RECORD
EventType : BYTE;{User-defined}
TransType : BYTE;{User-defined}
Status : INTEGER;
SendTime : WORD;{User-defined}
SendDate : WORD;{User-defined}
NumberOfFiles : INTEGER;{User-defined}
FTROffset : INTEGER;{User-defined}
PhoneNo : ARRAY[1..47] OF CHAR;{User-defined}
TagField : ARRAY[1..64] OF CHAR;
Unused1 : BYTE;{User-defined}
CallSecs : BYTE;
CallMins : BYTE;
CallHrs : BYTE;
TotPages : LONGINT;
NumPagesSent : LONGINT;
NumFilesSent : INTEGER;
CoverFlag : BYTE;{User-defined}
NumErrors : INTEGER;
Unused2 : ARRAY[1..78] OF BYTE;{User-defined}
CSID : ARRAY[1..21] OF BYTE;
Dest : ARRAY[1..32] OF CHAR;{User-defined}
Sender : ARRAY[1..32] OF CHAR;{User-defined}
PCXFile : ARRAY[1..80] OF CHAR;{User-defined}
FAXType : BYTE;
TextSize : BYTE;
FTRStatus : BYTE;
BytesTrans : LONGINT;
SizeOfFile : LONGINT;
NumPagesTrans : INTEGER;
NumPagesTot : INTEGER;
FAXFileName : ARRAY[1..80] OF CHAR;
Increments : BYTE;
Inches : BYTE;
Reserved : ARRAY[1..31] OF BYTE;
END;
VAR
CASError : WORD;
AutoState : BYTE;
EDB : EDBPtr;
CFR : CFRPtr;
FTR : FTRPtr;
SAR : SARPtr;
ControlFile : FILE;
FileList : FileNameArray;
FUNCTION ManagerInstalled : BOOLEAN;
{CAS Function 00h}
FUNCTION SubmitTask(ControlFileName : FileName) : INTEGER;
{CAS Function 01h}
PROCEDURE AbortCurrentEvent;
{CAS Function 02h}
PROCEDURE FindFirstQEntry(EType : EventTypes;Direction : Directions;
QueueType : QueueTypes;VAR EventHandle : INTEGER);
{CAS Function 05h}
PROCEDURE FindNextQEntry(QueueType : QueueTypes;VAR EventHandle : INTEGER);
{CAS Function 06h}
PROCEDURE OpenFile(QueueType : QueueTypes;VAR EventHandle : INTEGER;
FileNumber : INTEGER;VAR DOSHandle : INTEGER);
{CAS Function 07h}
PROCEDURE DeleteFile(QueueType : QueueTypes;VAR EventHandle : INTEGER;
FileNumber : INTEGER);
{CAS Function 08h}
PROCEDURE DeleteAllFiles(QueueType : QueueTypes);
{CAS Function 09h}
PROCEDURE GetEventDate(QueueType : QueueTypes;VAR EventHandle : INTEGER;
VAR Year : INTEGER;VAR Month,Day : BYTE);
{CAS Function 0Ah}
PROCEDURE SetTaskDate(VAR EventHandle : INTEGER;VAR Year : INTEGER;
VAR Month,Day : BYTE);
{CAS Function 0Bh}
PROCEDURE GetEventTime(VAR Hour,Minutes,Secs : BYTE;EventHandle : INTEGER;
QueueType : QueueTypes);
{CAS Function 0Ch}
PROCEDURE SetTaskTime(VAR Hour,Minutes,Secs : BYTE;VAR EventHandle : INTEGER);
{CAS Function 0Dh}
PROCEDURE GetEDB;
{CAS Function 0Eh}
PROCEDURE DisposeEDB(VAR EDB : EDBPtr);
PROCEDURE GetAutoReceiveState;
{CAS Function 0Fh}
PROCEDURE SetAutoReceiveState(NumberOfRings : BYTE);
{CAS Function 0Fh}
PROCEDURE GetCurrentEventStatus;
{CAS Function 10h}
PROCEDURE DisposeSAR;
PROCEDURE GetQueueStatus(VAR NumChanges,NumFiles,NumReceived : INTEGER;
QueueType : QueueTypes);
{CAS Function 11h}
PROCEDURE RunDiagnostics;
{CAS Function 13h}
PROCEDURE MoveFile(VAR FName : FileName;VAR EventHandle : INTEGER;
VAR FileNumber : INTEGER);
{CAS Function 14h}
PROCEDURE SendSingleFile(D : Str32;S : Str80;P : Str47);
{CAS Function 15h}
PROCEDURE RemoveManager;
{CAS Function 16h}
FUNCTION CreateControlFile(CFEvent : CFEventType;TransferType : BYTE;
CFRTime : WORD;CFRDate : WORD;NumFiles : INTEGER;Phone : Str47;
CoverPageFlag : BYTE;Destination : Str32;SenderName : Str32;
LogoName : Str80;VAR CoverPageText : CoverPageType) : FileName;
FUNCTION DOSTime(Hour,Minutes,Seconds : WORD) : WORD;
FUNCTION DOSDate(Month,Day,Year : WORD) : WORD;
IMPLEMENTATION
CONST
MUX = $CB;
TYPE
LIT = RECORD
HI,LO : WORD;
END;
FDAPtr = ^FAXDataArea;
FAXDataArea = RECORD
TransType : BYTE;
TextSize : BYTE;
SendTime : INTEGER;
SendDate : INTEGER;
Dest : ARRAY[1..32] OF CHAR;
SendFile : ARRAY[1..80] OF CHAR;
Phone : ARRAY[1..47] OF CHAR;
TagField : ARRAY[1..64]